Hello community,

here is the log from the commit of package xawtv for openSUSE:Factory
checked in at Mon Sep 12 10:37:46 CEST 2011.



--------
--- xawtv/xawtv.changes 2011-07-03 19:29:48.000000000 +0200
+++ /mounts/work_src_done/STABLE/xawtv/xawtv.changes    2011-09-10 
15:14:33.000000000 +0200
@@ -1,0 +2,19 @@
+Sat Sep 10 13:13:27 UTC 2011 - [email protected]
+
+- Update to version 3.102:
+  * Improve alsa latency handler and document the -alsa-latency parameter
+  * Improve alsa handling, fixing a cut and past error that causes
+    breakages with some cards
+  * Improve audio parameters detection
+  * fix build with ld --as-needed --no-copy-dt-needed
+- Spec file updates:
+  * Changed License: to GPL-2.0+.
+  * Recommend instead of Require "pia" for xawtv and motv.
+  * Removed "export SUSE_ASNEEDED=0" (not needed anymore).
+  * Minor other updates.
+- Added a patch "v4l-conf_non-position-independent-executable_fix.patch" to fix
+  the non-position-independent-executable rpmlint warning for v4l-conf.
+- Added a patch "no-copy-dt-needed-entries.patch" to fix linking with
+  --no-copy-dt-needed-entries.
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  xawtv-3.101.tar.bz2

New:
----
  no-copy-dt-needed-entries.patch
  v4l-conf_non-position-independent-executable_fix.patch
  xawtv-3.102.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xawtv.spec ++++++
--- /var/tmp/diff_new_pack.rBpNEN/_old  2011-09-12 10:37:41.000000000 +0200
+++ /var/tmp/diff_new_pack.rBpNEN/_new  2011-09-12 10:37:41.000000000 +0200
@@ -19,11 +19,11 @@
 
 
 Name:           xawtv
-Version:        3.101
+Version:        3.102
 Release:        1
 Summary:        Video4Linux TV application (Athena)
 
-License:        GPLv2+
+License:        GPL-2.0+
 Url:            http://www.kraxel.org/blog/linux/xawtv/
 Group:          Hardware/TV
 Source0:        http://linuxtv.org/downloads/xawtv/%{name}-%{version}.tar.bz2
@@ -31,6 +31,10 @@
 Source2:        motv.desktop
 # PATCH-FIX-OPENSUSE xawtv-3.95.patch --
 Patch0:         xawtv-3.95.patch
+# PATCH-FIX-OPENSUSE v4l-conf_non-position-independent-executable_fix.patch 
[email protected] -- Fix non-position-independent-executable rpmlint 
warning for v4l-conf
+Patch1:         v4l-conf_non-position-independent-executable_fix.patch
+# PATCH-FIX-UPSTREAM no-copy-dt-needed-entries.patch [email protected] 
-- Fix linking with --no-copy-dt-needed-entries
+Patch2:         no-copy-dt-needed-entries.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 BuildRequires:  Mesa-devel
@@ -51,10 +55,10 @@
 %endif
 BuildRequires:  xorg-x11-devel
 BuildRequires:  zvbi-devel
-Requires:       pia
 Requires:       tv-common
 Requires:       tv-fonts
 Requires:       v4l-conf
+Recommends:     pia
 Suggests:       lirc
 Conflicts:      xaw3dd
 
@@ -64,13 +68,13 @@
 the Athena widgets.
 
 %package -n motv
-License:        GPLv2+
+License:        GPL-2.0+
 Summary:        Video4Linux TV application (Motif)
 Group:          Hardware/TV
-Requires:       pia
 Requires:       tv-common
 Requires:       tv-fonts
 Requires:       v4l-conf
+Recommends:     pia
 Suggests:       lirc
 Provides:       xawtv:%{_bindir}/motv
 
@@ -82,7 +86,7 @@
 Also includes the teletext/videotext viewer mtt.
 
 %package -n tv-common
-License:        GPLv2+
+License:        GPL-2.0+
 Summary:        Frequency tables and some Tools for motv and xawtv
 Group:          Hardware/TV
 Provides:       xawtv:/usr/X11R6/lib/X11/fonts/misc/led-iso8859-1.bdf
@@ -92,7 +96,7 @@
 for xawtv and motv (xawtv-remote, for example).
 
 %package -n v4l-conf
-License:        GPLv2+
+License:        GPL-2.0+
 Summary:        Video4linux Configuration Tool
 Group:          Hardware/TV
 Requires(post): permissions
@@ -103,7 +107,7 @@
 (bttv, for example). xawtv, motv, and fbtv need it.
 
 %package -n v4l-tools
-License:        GPLv2+
+License:        GPL-2.0+
 Summary:        Video4linux terminal / command line utilities
 Group:          Hardware/TV
 Requires:       tv-common
@@ -118,7 +122,7 @@
 application, ...
 
 %package -n alevtd
-License:        GPLv2+
+License:        GPL-2.0+
 Summary:        HTTP server for Teletext pages
 Group:          Productivity/Networking/Web/Servers
 
@@ -127,7 +131,7 @@
 via http, i.e. you can read the teletext pages with a web browser.
 
 %package -n pia
-License:        GPLv2+
+License:        GPL-2.0+
 Summary:        Simple Movie Player
 Group:          Productivity/Multimedia/Video/Players
 Requires:       tv-common
@@ -140,26 +144,25 @@
 %prep
 %setup -q
 %patch0 -p1
+%patch1
+%patch2
 
 %build
-# This package failed when testing with -Wl,-as-needed being default.
-# So we disable it here, if you want to retest, just delete this comment and 
the line below.
-export SUSE_ASNEEDED=0
 autoreconf -fi
 export CFLAGS="%{optflags} -fno-strict-aliasing"
 %{configure}
 make %{?_smp_mflags}
 
 %install
-make DESTDIR=%{buildroot} SUID_ROOT="" install
+%make_install SUID_ROOT=""
 
 mkdir -p %{buildroot}%{_datadir}/pixmaps
 install -pm 0644 contrib/xawtv48x48.xpm  
%{buildroot}%{_datadir}/pixmaps/xawtv.xpm
 install -pm 0644 contrib/xawtv48x48.xpm  
%{buildroot}%{_datadir}/pixmaps/motv.xpm
 
 %if 0%{?suse_version}
-%suse_update_desktop_file -i xawtv AudioVideo Video TV
-%suse_update_desktop_file -i motv Motif AudioVideo Video TV
+%suse_update_desktop_file -i xawtv
+%suse_update_desktop_file -i motv
 %endif
 
 %clean
@@ -274,7 +277,7 @@
 
 %files -n pia
 %defattr(-,root,root,-)
-%doc COPYING Changes README README.* TODO
+%doc COPYING Changes README
 %{_bindir}/pia
 %doc %{_mandir}/man1/pia.1%{ext_man}
 

++++++ no-copy-dt-needed-entries.patch ++++++
--- x11/Subdir.mk.orig  2011-09-05 20:26:02.000000000 +0300
+++ x11/Subdir.mk       2011-09-10 13:57:26.102000095 +0300
@@ -101,8 +101,8 @@
        $(ATHENA_LIBS) $(VBI_LIBS) $(GL_LIBS) -ljpeg -lm -ldl -lfontconfig
 x11/motv         : LDLIBS  += \
        $(THREAD_LIBS) $(CURSES_LIBS) $(LIRC_LIBS) $(ALSA_LIBS) \
-       $(MOTIF_LIBS) $(VBI_LIBS) $(GL_LIBS) -ljpeg -lm
-x11/mtt          : LDLIBS  += $(THREAD_LIBS) $(MOTIF_LIBS) $(VBI_LIBS) -ljpeg
+       $(MOTIF_LIBS) $(VBI_LIBS) $(GL_LIBS) -ljpeg -lm -ldl
+x11/mtt          : LDLIBS  += $(THREAD_LIBS) $(MOTIF_LIBS) $(VBI_LIBS) -ljpeg 
-ldl
 x11/v4lctl       : LDLIBS  += $(THREAD_LIBS) $(ATHENA_LIBS) -ljpeg -lm -ldl
 x11/pia          : LDLIBS  += $(ATHENA_LIBS) $(GL_LIBS) -ljpeg -lm -ldl
 x11/rootv        : LDLIBS  += $(ATHENA_LIBS)
++++++ v4l-conf_non-position-independent-executable_fix.patch ++++++
--- console/Subdir.mk.orig      2011-09-05 20:26:02.000000000 +0300
+++ console/Subdir.mk   2011-09-10 14:13:33.887999993 +0300
@@ -88,6 +88,10 @@
 console/scantv   : LDFLAGS := $(DLFLAGS)
 console/streamer : LDFLAGS := $(DLFLAGS)
 console/webcam   : LDFLAGS := $(DLFLAGS)
+console/v4l-conf : LDFLAGS := $(DLFLAGS) -pie
+
+# compile flags
+console/v4l-conf : CFLAGS += -fPIE
 
 # global targets
 all:: $(TARGETS-console) $(TARGETS-v4l-conf)
++++++ xawtv-3.101.tar.bz2 -> xawtv-3.102.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/Changes new/xawtv-3.102/Changes
--- old/xawtv-3.101/Changes     2011-07-03 15:55:02.000000000 +0200
+++ new/xawtv-3.102/Changes     2011-09-05 19:26:02.000000000 +0200
@@ -1,3 +1,12 @@
+3.102
+=====
+
+* Improve alsa latency handler and document the -alsa-latency parameter
+* Improve alsa handling, fixing a cut and past error that causes
+  breakages with some cards
+* Improve audio parameters detection
+* fix build with ld --as-needed --no-copy-dt-needed
+
 3.101
 =====
 
@@ -12,7 +21,7 @@
   the first TV device. If not available, fall back to the first grabber
   device.
 * Add auto-detection logic for scanv: by default, it will now seek for
-  the first TV device. If not afailable, fails.
+  the first TV device. If not available, fails.
 * Add optional support for libexplain at the v4l2/libv4l driver.
   Libexplain provides a  more complete explanation for the error codes,
   helping developers to better track what's happened.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/common/alsa_stream.c 
new/xawtv-3.102/common/alsa_stream.c
--- old/xawtv-3.101/common/alsa_stream.c        2011-07-03 15:55:02.000000000 
+0200
+++ new/xawtv-3.102/common/alsa_stream.c        2011-09-05 19:26:02.000000000 
+0200
@@ -69,7 +69,7 @@
     err = snd_pcm_hw_params_any(handle, params);
     if (err < 0) {
        fprintf(error_fp,
-               "Broken configuration for %s PCM: no configurations available: 
%s\n",
+               "alsa: Broken configuration for %s PCM: no configurations 
available: %s\n",
                snd_strerror(err), id);
        return err;
     }
@@ -77,20 +77,20 @@
     err = snd_pcm_hw_params_set_access(handle, params,
                                       SND_PCM_ACCESS_RW_INTERLEAVED);
     if (err < 0) {
-       fprintf(error_fp, "Access type not available for %s: %s\n", id,
+       fprintf(error_fp, "alsa: Access type not available for %s: %s\n", id,
                snd_strerror(err));
        return err;
     }
 
     err = snd_pcm_hw_params_set_format(handle, params, format);
     if (err < 0) {
-       fprintf(error_fp, "Sample format not available for %s: %s\n", id,
+       fprintf(error_fp, "alsa: Sample format not available for %s: %s\n", id,
               snd_strerror(err));
        return err;
     }
     err = snd_pcm_hw_params_set_channels(handle, params, channels);
     if (err < 0) {
-       fprintf(error_fp, "Channels count (%i) not available for %s: %s\n",
+       fprintf(error_fp, "alsa: Channels count (%i) not available for %s: 
%s\n",
                channels, id, snd_strerror(err));
        return err;
     }
@@ -98,27 +98,66 @@
     return 0;
 }
 
+static void getparams_periods(snd_pcm_t *handle,
+                     snd_pcm_hw_params_t *params,
+                     unsigned int *usecs,
+                     unsigned int *count,
+                     const char *id)
+{
+    unsigned min = 0, max = 0;
+
+    snd_pcm_hw_params_get_periods_min(params, &min, 0);
+    snd_pcm_hw_params_get_periods_max(params, &max, 0);
+    if (min && max) {
+       if (verbose)
+           fprintf(error_fp, "alsa: %s periods range between %u and %u. Want: 
%u\n",
+                   id, min, max, *count);
+       if (*count < min)
+           *count = min;
+       if (*count > max)
+           *count = max;
+    }
+
+    min = max = 0;
+    snd_pcm_hw_params_get_period_time_min(params, &min, 0);
+    snd_pcm_hw_params_get_period_time_max(params, &max, 0);
+    if (min && max) {
+       if (verbose)
+           fprintf(error_fp, "alsa: %s period time range between %u and %u. 
Want: %u\n",
+                   id, min, max, *usecs);
+       if (*usecs < min)
+           *usecs = min;
+       if (*usecs > max)
+           *usecs = max;
+    }
+}
+
 static int setparams_periods(snd_pcm_t *handle,
                      snd_pcm_hw_params_t *params,
-                     unsigned int usecs,
-                     unsigned int count,
+                     unsigned int *usecs,
+                     unsigned int *count,
                      const char *id)
 {
     int err;
 
-    err = snd_pcm_hw_params_set_period_time_near(handle, params, &usecs, 0);
+    err = snd_pcm_hw_params_set_period_time_near(handle, params, usecs, 0);
     if (err < 0) {
-       fprintf(error_fp, "Unable to set period time %u for %s: %s\n",
-               usecs, id, snd_strerror(err));
-       return err;
+           fprintf(error_fp, "alsa: Unable to set period time %u for %s: %s\n",
+                   *usecs, id, snd_strerror(err));
+           return err;
     }
 
-    err = snd_pcm_hw_params_set_periods_near(handle, params, &count, 0);
+    err = snd_pcm_hw_params_set_periods_near(handle, params, count, 0);
     if (err < 0) {
-       fprintf(error_fp, "Unable to set periods %u for %s: %s\n",
-               count, id, snd_strerror(err));
+       fprintf(error_fp, "alsa: Unable to set %u periods for %s: %s\n",
+               *count, id, snd_strerror(err));
        return err;
     }
+
+    if (verbose)
+       fprintf(error_fp, "alsa: %s period set to %u periods of %u time\n",
+               id, *count, *usecs);
+
     return 0;
 }
 
@@ -132,59 +171,54 @@
 
     err = snd_pcm_hw_params(handle, params);
     if (err < 0) {
-       fprintf(error_fp, "Unable to set hw params for %s: %s\n",
+       fprintf(error_fp, "alsa: Unable to set hw params for %s: %s\n",
                id, snd_strerror(err));
        return err;
     }
     err = snd_pcm_sw_params_current(handle, swparams);
     if (err < 0) {
-       fprintf(error_fp, "Unable to determine current swparams for %s: %s\n",
+       fprintf(error_fp, "alsa: Unable to determine current swparams for %s: 
%s\n",
                id, snd_strerror(err));
        return err;
     }
     err = snd_pcm_sw_params_set_start_threshold(handle, swparams,
                                                start_treshold);
     if (err < 0) {
-       fprintf(error_fp, "Unable to set start threshold mode for %s: %s\n",
+       fprintf(error_fp, "alsa: Unable to set start threshold mode for %s: 
%s\n",
                id, snd_strerror(err));
        return err;
     }
 
     err = snd_pcm_sw_params_set_avail_min(handle, swparams, 4);
     if (err < 0) {
-       fprintf(error_fp, "Unable to set avail min for %s: %s\n",
+       fprintf(error_fp, "alsa: Unable to set avail min for %s: %s\n",
                id, snd_strerror(err));
        return err;
     }
     err = snd_pcm_sw_params(handle, swparams);
     if (err < 0) {
-       fprintf(error_fp, "Unable to set sw params for %s: %s\n",
+       fprintf(error_fp, "alsa: Unable to set sw params for %s: %s\n",
                id, snd_strerror(err));
        return err;
     }
     return 0;
 }
 
-static int seek_rates[] = {
-    48000,
-    44100,
-    32000,
-};
-#define NUM_RATES (sizeof(seek_rates)/sizeof(seek_rates[0]))
-
 static int setparams(snd_pcm_t *phandle, snd_pcm_t *chandle,
                     snd_pcm_format_t format,
                     int latency, int allow_resample,
                     struct final_params *negotiated)
 {
     int i;
-    unsigned ratep, ratec;
+    unsigned ratep, ratec = 0;
+    unsigned ratemin = 32000, ratemax = 96000, val;
     int err, channels = 2;
     snd_pcm_hw_params_t *p_hwparams, *c_hwparams;
     snd_pcm_sw_params_t *p_swparams, *c_swparams;
     snd_pcm_uframes_t c_size, p_psize, c_psize;
     /* Our latency is 2 periods (in usecs) */
-    unsigned int periodtime = latency * 1000 / 2;
+    unsigned int c_periods = 2, p_periods;
+    unsigned int c_periodtime, p_periodtime;
 
     snd_pcm_hw_params_alloca(&p_hwparams);
     snd_pcm_hw_params_alloca(&c_hwparams);
@@ -200,17 +234,44 @@
     if (allow_resample) {
        err = snd_pcm_hw_params_set_rate_resample(chandle, c_hwparams, 1);
        if (err < 0) {
-           fprintf(error_fp, "Resample setup failed: %s\n", snd_strerror(err));
+           fprintf(error_fp, "alsa: Resample setup failed: %s\n", 
snd_strerror(err));
            return 1;
-       }
+       } else if (verbose)
+          fprintf(error_fp, "alsa: Resample enabled.\n");
     }
 
-    for (i = 0; i < NUM_RATES; i++) {
-       ratec = seek_rates[i];
-       err = snd_pcm_hw_params_set_rate_near(chandle, c_hwparams, &ratec, 0);
+    err = snd_pcm_hw_params_get_rate_min(c_hwparams, &ratemin, 0);
+    if (err >= 0 && verbose)
+       fprintf(error_fp, "alsa: Capture min rate is %d\n", ratemin);
+    err = snd_pcm_hw_params_get_rate_max(c_hwparams, &ratemax, 0);
+    if (err >= 0 && verbose)
+       fprintf(error_fp, "alsa: Capture max rate is %u\n", ratemax);
+
+    err = snd_pcm_hw_params_get_rate_min(p_hwparams, &val, 0);
+    if (err >= 0) {
+       if (verbose)
+           fprintf(error_fp, "alsa: Playback min rate is %u\n", val);
+       if (val > ratemin)
+               ratemin = val;
+    }
+    err = snd_pcm_hw_params_get_rate_max(p_hwparams, &val, 0);
+    if (err >= 0) {
+       if (verbose)
+           fprintf(error_fp, "alsa: Playback max rate is %u\n", val);
+       if (val < ratemax)
+               ratemax = val;
+    }
+
+    if (verbose)
+       fprintf(error_fp, "alsa: Will search a common rate between %u and %u\n",
+               ratemin, ratemax);
+
+    for (i = ratemin; i <= ratemax; i+= 100) {
+       err = snd_pcm_hw_params_set_rate_near(chandle, c_hwparams, &i, 0);
        if (err)
            continue;
-       ratep = ratec;
+       ratec = i;
+       ratep = i;
        err = snd_pcm_hw_params_set_rate_near(phandle, p_hwparams, &ratep, 0);
        if (err)
            continue;
@@ -218,24 +279,50 @@
            break;
        if (verbose)
            fprintf(error_fp,
-                   "Failed to set to %u: capture wanted %u, playback wanted 
%u%s\n",
-                   seek_rates[i], ratec, ratep,
+                   "alsa: Failed to set to %u: capture wanted %u, playback 
wanted %u%s\n",
+                   i, ratec, ratep,
                    allow_resample ? " with resample enabled": "");
     }
 
     if (err < 0) {
-       fprintf(error_fp, "Failed to set a supported rate: %s\n",
+       fprintf(error_fp, "alsa: Failed to set a supported rate: %s\n",
                snd_strerror(err));
        return 1;
     }
     if (ratep != ratec) {
        if (verbose || allow_resample)
            fprintf(error_fp,
-                   "Couldn't find a rate that it is supported by both playback 
and capture\n");
+                   "alsa: Couldn't find a rate that it is supported by both 
playback and capture\n");
        return 2;
     }
+    if (verbose)
+       fprintf(error_fp, "alsa: Using Rate %d\n", ratec);
+
+    /* Negociate period parameters */
+
+    c_periodtime = latency * 1000 / c_periods;
+    getparams_periods(chandle, c_hwparams, &c_periodtime, &c_periods, 
"capture");
+    p_periods = c_periods * 2;
+    p_periodtime = c_periodtime;
+    getparams_periods(phandle, p_hwparams, &p_periodtime, &p_periods, 
"playback");
+    c_periods = p_periods / 2;
+
+    /*
+     * Some playback devices support a very limited periodtime range. If the 
user needs to
+     * use a higher latency to avoid overrun/underrun, use an alternate 
algorithm of incresing
+     * the number of periods, to archive the needed latency
+     */
+    if (p_periodtime < c_periodtime) {
+       c_periodtime = p_periodtime;
+       c_periods = round (latency * 1000.0 / c_periodtime + 0.5);
+       getparams_periods(chandle, c_hwparams, &c_periodtime, &c_periods, 
"capture");
+       p_periods = c_periods * 2;
+       p_periodtime = c_periodtime;
+       getparams_periods(phandle, p_hwparams, &p_periodtime, &p_periods, 
"playback");
+       c_periods = p_periods / 2;
+    }
 
-    if (setparams_periods(phandle, c_hwparams, periodtime, 2, "capture"))
+    if (setparams_periods(chandle, c_hwparams, &c_periodtime, &c_periods, 
"capture"))
        return 1;
 
     /* Note we use twice as much periods for the playback buffer, since we
@@ -244,14 +331,14 @@
        on writing to it. Note we will configure the playback dev to start
        playing as soon as it has 2 capture periods worth of data, so this
        won't influence latency */
-    if (setparams_periods(phandle, p_hwparams, periodtime, 4, "playback"))
+    if (setparams_periods(phandle, p_hwparams, &p_periodtime, &p_periods, 
"playback"))
        return 1;
 
     snd_pcm_hw_params_get_period_size(p_hwparams, &p_psize, NULL);
     snd_pcm_hw_params_get_period_size(c_hwparams, &c_psize, NULL);
     snd_pcm_hw_params_get_buffer_size(c_hwparams, &c_size);
 
-    latency = 2 * c_psize;
+    latency = c_periods * c_psize;
     if (setparams_set(phandle, p_hwparams, p_swparams, latency, "playback"))
        return 1;
 
@@ -259,17 +346,17 @@
        return 1;
 
     if ((err = snd_pcm_prepare(phandle)) < 0) {
-       fprintf(error_fp, "Prepare error: %s\n", snd_strerror(err));
+       fprintf(error_fp, "alsa: Prepare error: %s\n", snd_strerror(err));
        return 1;
     }
 
     if (verbose) {
-       fprintf(error_fp, "ALSA config:\n");
+       fprintf(error_fp, "alsa: Negociated configuration:\n");
        snd_pcm_dump_setup(phandle, output);
        snd_pcm_dump_setup(chandle, output);
-       fprintf(error_fp, "Parameters are %iHz, %s, %i channels\n",
+       fprintf(error_fp, "alsa: Parameters are %iHz, %s, %i channels\n",
                ratep, snd_pcm_format_name(format), channels);
-       fprintf(error_fp, "Set bitrate to %u%s, buffer size is %u\n", ratec,
+       fprintf(error_fp, "alsa: Set bitrate to %u%s, buffer size is %u\n", 
ratec,
                allow_resample ? " with resample enabled at playback": "",
                (unsigned int)c_size);
     }
@@ -290,7 +377,7 @@
     if (r < 0 && r != -EAGAIN) {
        r = snd_pcm_recover(handle, r, 0);
        if (r < 0)
-           fprintf(error_fp, "overrun recover error: %s\n", snd_strerror(r));
+           fprintf(error_fp, "alsa: overrun recover error: %s\n", 
snd_strerror(r));
     }
     return r;
 }
@@ -307,7 +394,7 @@
        if (r < 0) {
            r = snd_pcm_recover(handle, r, 0);
            if (r < 0) {
-               fprintf(error_fp, "underrun recover error: %s\n",
+               fprintf(error_fp, "alsa: underrun recover error: %s\n",
                        snd_strerror(r));
                return r;
            }
@@ -330,20 +417,20 @@
 
     err = snd_output_stdio_attach(&output, error_fp, 0);
     if (err < 0) {
-       fprintf(error_fp, "Output failed: %s\n", snd_strerror(err));
+       fprintf(error_fp, "alsa: Output failed: %s\n", snd_strerror(err));
        return 0;
     }
 
     /* Open the devices */
     if ((err = snd_pcm_open(&phandle, pdevice, SND_PCM_STREAM_PLAYBACK,
                            0)) < 0) {
-       fprintf(error_fp, "Cannot open ALSA Playback device %s: %s\n",
+       fprintf(error_fp, "alsa: Cannot open playback device %s: %s\n",
                pdevice, snd_strerror(err));
        return 0;
     }
     if ((err = snd_pcm_open(&chandle, cdevice, SND_PCM_STREAM_CAPTURE,
                            SND_PCM_NONBLOCK)) < 0) {
-       fprintf(error_fp, "Cannot open ALSA Capture device %s: %s\n",
+       fprintf(error_fp, "alsa: Cannot open capture device %s: %s\n",
                cdevice, snd_strerror(err));
        return 0;
     }
@@ -353,30 +440,30 @@
     /* Try to use plughw instead, as it allows emulating speed */
     if (err == 2 && strncmp(pdevice, "hw", 2) == 0) {
 
-        snd_pcm_close(phandle);
+       snd_pcm_close(phandle);
 
-        sprintf(pdevice_new, "plug%s", pdevice);
-        pdevice = pdevice_new;
-        if (verbose)
-            fprintf(error_fp, "Trying %s for playback\n", pdevice);
-        if ((err = snd_pcm_open(&phandle, pdevice, SND_PCM_STREAM_PLAYBACK,
-                                0)) < 0) {
-            fprintf(error_fp, "Cannot open ALSA Playback device %s: %s\n",
-                    pdevice, snd_strerror(err));
-        }
+       sprintf(pdevice_new, "plug%s", pdevice);
+       pdevice = pdevice_new;
+       if (verbose)
+           fprintf(error_fp, "alsa: Trying %s for playback\n", pdevice);
+       if ((err = snd_pcm_open(&phandle, pdevice, SND_PCM_STREAM_PLAYBACK,
+                               0)) < 0) {
+           fprintf(error_fp, "alsa: Cannot open playback device %s: %s\n",
+                   pdevice, snd_strerror(err));
+       }
 
        err = setparams(phandle, chandle, format, latency, 1, &negotiated);
     }
 
     if (err != 0) {
-        fprintf(error_fp, "setparams failed\n");
-        return 1;
+       fprintf(error_fp, "alsa: setparams failed\n");
+       return 1;
     }
 
     buffer = malloc((negotiated.bufsize * snd_pcm_format_width(format) / 8)
                    * negotiated.channels);
     if (buffer == NULL) {
-       fprintf(error_fp, "Failed allocating buffer for audio\n");
+       fprintf(error_fp, "alsa: Failed allocating buffer for audio\n");
        return 0;
     }
 
@@ -385,7 +472,7 @@
      * need to multiply it by two.
      */
     fprintf(error_fp,
-           "Alsa stream started from %s to %s (%i Hz, buffer delay = %.2f 
ms)\n",
+           "alsa: stream started from %s to %s (%i Hz, buffer delay = %.2f 
ms)\n",
            cdevice, pdevice, negotiated.rate,
            negotiated.latency * 1000.0 / negotiated.rate);
 
@@ -428,10 +515,10 @@
     struct input_params *inputs = (struct input_params *) whatever;
 
     if (verbose)
-       fprintf(error_fp, "Starting copying alsa stream from %s to %s\n",
+       fprintf(error_fp, "alsa: starting copying alsa stream from %s to %s\n",
                inputs->cdevice, inputs->pdevice);
     alsa_stream(inputs->pdevice, inputs->cdevice, inputs->latency);
-    fprintf(error_fp, "Alsa stream stopped\n");
+    fprintf(error_fp, "alsa: stream stopped\n");
 
     free(inputs->pdevice);
     free(inputs->cdevice);
@@ -458,8 +545,9 @@
 
     verbose = __verbose;
 
+
     if (inputs == NULL) {
-       fprintf(error_fp, "failed allocating memory for ALSA inputs\n");
+       fprintf(error_fp, "alsa: failed allocating memory for inputs\n");
        return 0;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/console/Subdir.mk 
new/xawtv-3.102/console/Subdir.mk
--- old/xawtv-3.101/console/Subdir.mk   2011-07-03 15:55:02.000000000 +0200
+++ new/xawtv-3.102/console/Subdir.mk   2011-09-05 19:26:02.000000000 +0200
@@ -73,11 +73,11 @@
 # libraries to link
 console/fbtv     : LDLIBS  += \
        $(THREAD_LIBS) $(CURSES_LIBS) $(LIRC_LIBS) $(ALSA_LIBS) \
-       $(FS_LIBS) -ljpeg -lm
-console/ttv      : LDLIBS  += $(THREAD_LIBS) $(AA_LIBS) -ljpeg -lm
-console/scantv   : LDLIBS  += $(THREAD_LIBS) $(VBI_LIBS) -ljpeg
-console/streamer : LDLIBS  += $(THREAD_LIBS) -ljpeg -lm
-console/webcam   : LDLIBS  += $(THREAD_LIBS) -ljpeg -lm
+       $(FS_LIBS) -ljpeg -lm -ldl
+console/ttv      : LDLIBS  += $(THREAD_LIBS) $(AA_LIBS) -ljpeg -lm -ldl
+console/scantv   : LDLIBS  += $(THREAD_LIBS) $(VBI_LIBS) -ljpeg -ldl
+console/streamer : LDLIBS  += $(THREAD_LIBS) -ljpeg -lm -ldl
+console/webcam   : LDLIBS  += $(THREAD_LIBS) -ljpeg -lm -ldl
 console/radio    : LDLIBS  += $(CURSES_LIBS)
 console/record   : LDLIBS  += $(CURSES_LIBS)
 console/v4l-conf : LDLIBS  += $(ATHENA_LIBS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/libng/plugins/Subdir.mk 
new/xawtv-3.102/libng/plugins/Subdir.mk
--- old/xawtv-3.101/libng/plugins/Subdir.mk     2011-07-03 15:55:02.000000000 
+0200
+++ new/xawtv-3.102/libng/plugins/Subdir.mk     2011-09-05 19:26:02.000000000 
+0200
@@ -49,6 +49,9 @@
 else
 libng/plugins/drv0-libv4l.so: LDLIBS := -lv4l2
 endif
+libng/plugins/flt-disor.so: LDLIBS := -lm
+libng/plugins/flt-gamma.so: LDLIBS := -lm
+libng/plugins/conv-mjpeg.so: LDLIBS := -ljpeg
 
 # global targets
 all:: $(TARGETS-plugins)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/x11/Subdir.mk 
new/xawtv-3.102/x11/Subdir.mk
--- old/xawtv-3.101/x11/Subdir.mk       2011-07-03 15:55:02.000000000 +0200
+++ new/xawtv-3.102/x11/Subdir.mk       2011-09-05 19:26:02.000000000 +0200
@@ -98,13 +98,13 @@
 # libraries to link
 x11/xawtv        : LDLIBS  += \
        $(THREAD_LIBS) $(CURSES_LIBS) $(LIRC_LIBS) $(ALSA_LIBS) \
-       $(ATHENA_LIBS) $(VBI_LIBS) $(GL_LIBS) -ljpeg -lm
+       $(ATHENA_LIBS) $(VBI_LIBS) $(GL_LIBS) -ljpeg -lm -ldl -lfontconfig
 x11/motv         : LDLIBS  += \
        $(THREAD_LIBS) $(CURSES_LIBS) $(LIRC_LIBS) $(ALSA_LIBS) \
        $(MOTIF_LIBS) $(VBI_LIBS) $(GL_LIBS) -ljpeg -lm
 x11/mtt          : LDLIBS  += $(THREAD_LIBS) $(MOTIF_LIBS) $(VBI_LIBS) -ljpeg
-x11/v4lctl       : LDLIBS  += $(THREAD_LIBS) $(ATHENA_LIBS) -ljpeg -lm
-x11/pia          : LDLIBS  += $(ATHENA_LIBS) $(GL_LIBS) -ljpeg -lm
+x11/v4lctl       : LDLIBS  += $(THREAD_LIBS) $(ATHENA_LIBS) -ljpeg -lm -ldl
+x11/pia          : LDLIBS  += $(ATHENA_LIBS) $(GL_LIBS) -ljpeg -lm -ldl
 x11/rootv        : LDLIBS  += $(ATHENA_LIBS)
 x11/xawtv-remote : LDLIBS  += $(ATHENA_LIBS)
 x11/propwatch    : LDLIBS  += $(ATHENA_LIBS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/x11/xt.c new/xawtv-3.102/x11/xt.c
--- old/xawtv-3.101/x11/xt.c    2011-07-03 15:55:02.000000000 +0200
+++ new/xawtv-3.102/x11/xt.c    2011-09-05 19:26:02.000000000 +0200
@@ -1679,6 +1679,7 @@
            "      -(no)alsa       enable/disable alsa streaming. Default: 
enabled\n"
            "      -(no)alsa-cap   manually specify an alsa capture interface\n"
            "      -(no)alsa-pb    manually specify an alsa playback 
interface\n"
+           "      -alsa-latency   manually specify an alsa latency in ms. 
Default: 30\n"
 #endif
            "  -b  -bpp n          color depth of the display is n (n=24,32)\n"
            "  -o  -outfile file   filename base for snapshots\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xawtv-3.101/xawtv.spec new/xawtv-3.102/xawtv.spec
--- old/xawtv-3.101/xawtv.spec  2011-07-03 15:55:02.000000000 +0200
+++ new/xawtv-3.102/xawtv.spec  2011-09-05 19:26:02.000000000 +0200
@@ -1,7 +1,7 @@
 Name:         xawtv
 Group:        Applications/Multimedia
 Autoreqprov:  on
-Version:      3.100
+Version:      3.102
 Release:      0
 License:      GPL
 Summary:      v4l applications


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to