This patch resulted two IVI regression issue:
[Trunk:Testing][REG]Russellville:alsa_input source is muted by default 16188
[Trunk:Testing][REG]Russellville: failed to record sounds via pulseaudio 16190

Please fix it otherwise we can't promote to Trunk


Peter

> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Vivian Zhang
> Sent: Thursday, April 14, 2011 10:42 PM
> To: [email protected]
> Subject: [meego-commits] 16255: Changes to Trunk:Testing/pulseaudio
> 
> Hi,
> I have made the following changes to pulseaudio in project Trunk:Testing.
> Please review and accept ASAP.
> 
> Thank You,
> Vivian Zhang
> 
> [This message was auto-generated]
> 
> ---
> 
> Request #16255:
> 
>   submit:   devel:multimedia/pulseaudio(r55) -> Trunk:Testing/pulseaudio
> 
> 
> Message:
>     Added patch for merging alsa-sink-old and alsa-source-old modules for
> n900 (BMC #16057)
> 
> State:   new          2011-04-14T07:42:18 vivian
> Comment: None
> 
> 
> 
> changes files:
> --------------
> --- pulseaudio.changes
> +++ pulseaudio.changes
> @@ -0,0 +1,3 @@
> +* Tue Apr 14 2011 Sami Sirkia <[email protected]> - 0.9.22
> +- Added alsa-sink-old and alsa-source-old by patch. Fixes: BMC#16057.
> +
> 
> new:
> ----
>   pa-0.9.22-add-old-sink-and-source.patch
> 
> spec files:
> -----------
> --- pulseaudio.spec
> +++ pulseaudio.spec
> @@ -277,6 +277,7 @@
>  Patch254:     pa-0.9.22-desktop.patch
>  Patch255:     use-a2dp-profile-for-non-mfld.patch
>  Patch256:     fix-9972-auto-route-audio-to-bt-sink.patch
> +Patch257:     pa-0.9.22-add-old-sink-and-source.patch
>  Requires:   udev >= 145-3
>  Requires:   xcb-util
>  Requires(post): /sbin/ldconfig
> @@ -857,6 +858,8 @@
>  %patch255 -p1
>  # fix-9972-auto-route-audio-to-bt-sink.patch
>  %patch256 -p1
> +# pa-0.9.22-add-old-sink-and-source.patch
> +%patch257 -p1
>  # >> setup
>  # << setup
> 
> @@ -895,6 +898,7 @@
>  %fdupes  %{buildroot}/%{_includedir}
> 
> 
> +
>  %post -p /sbin/ldconfig
> 
>  %postun -p /sbin/ldconfig
> @@ -968,6 +972,8 @@
>  %{_libdir}/pulse-%{pulseversion}/modules/module-alsa-sink.so
>  %{_libdir}/pulse-%{pulseversion}/modules/module-alsa-source.so
>  %{_libdir}/pulse-%{pulseversion}/modules/module-alsa-card.so
> +%{_libdir}/pulse-%{pulseversion}/modules/module-alsa-sink-old.so
> +%{_libdir}/pulse-%{pulseversion}/modules/module-alsa-source-old.so
>  %{_libdir}/pulse-%{pulseversion}/modules/module-always-sink.so
>  %{_libdir}/pulse-%{pulseversion}/modules/module-augment-properties.so
>  %{_libdir}/pulse-%{pulseversion}/modules/module-bluetooth-device.so
> 
> other changes:
> --------------
> 
> ++++++ pa-0.9.22-add-old-sink-and-source.patch (new)
> --- pa-0.9.22-add-old-sink-and-source.patch
> +++ pa-0.9.22-add-old-sink-and-source.patch
> +diff -ruN b/src/Makefile.am c/src/Makefile.am
> +--- b/src/Makefile.am        2011-04-11 20:35:17.383078001 +0300
> ++++ c/src/Makefile.am   2011-04-12 15:34:38.291077944 +0300
> +@@ -1114,7 +1114,9 @@
> +             libalsa-util.la \
> +             module-alsa-sink.la \
> +             module-alsa-source.la \
> +-            module-alsa-card.la
> ++            module-alsa-card.la \
> ++            module-alsa-sink-old.la \
> ++            module-alsa-source-old.la
> +
> + dist_alsaprofilesets_DATA = \
> +             modules/alsa/mixer/profile-sets/default.conf \
> +@@ -1303,6 +1305,8 @@
> +             module-alsa-sink-symdef.h \
> +             module-alsa-source-symdef.h \
> +             module-alsa-card-symdef.h \
> ++            modules/alsa/module-alsa-sink-old-symdef.h \
> ++            modules/alsa/module-alsa-source-old-symdef.h \
> +             module-coreaudio-detect-symdef.h \
> +             module-coreaudio-device-symdef.h \
> +             module-solaris-symdef.h \
> +@@ -1570,10 +1574,13 @@
> +
> + libalsa_util_la_SOURCES = \
> +             modules/alsa/alsa-util.c modules/alsa/alsa-util.h \
> ++            modules/alsa/alsa-util-old.c modules/alsa/alsa-util-old.h \
> +             modules/alsa/alsa-mixer.c modules/alsa/alsa-mixer.h \
> +             modules/alsa/alsa-sink.c modules/alsa/alsa-sink.h \
> +             modules/alsa/alsa-source.c modules/alsa/alsa-source.h \
> +-            modules/reserve-wrap.c modules/reserve-wrap.h
> ++            modules/reserve-wrap.c modules/reserve-wrap.h \
> ++            modules/alsa/alsa-sink-old.c modules/alsa/alsa-sink-old.h \
> ++            modules/alsa/alsa-source-old.c modules/alsa/alsa-source-old.h
> + libalsa_util_la_LDFLAGS = -avoid-version
> + libalsa_util_la_LIBADD = $(MODULE_LIBADD) $(ASOUNDLIB_LIBS)
> + libalsa_util_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
> +@@ -1611,6 +1618,16 @@
> + module_alsa_card_la_LIBADD = $(MODULE_LIBADD) $(ASOUNDLIB_LIBS)
> libalsa-util.la
> + module_alsa_card_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
> +
> ++module_alsa_sink_old_la_SOURCES = modules/alsa/module-alsa-sink-old.c
> ++module_alsa_sink_old_la_LDFLAGS = $(MODULE_LDFLAGS)
> ++module_alsa_sink_old_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS)
> libalsa-util.la libpulsecore-@[email protected]
> libpulsecommon-@[email protected] libpulse.la
> ++module_alsa_sink_old_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS)
> ++
> ++module_alsa_source_old_la_SOURCES =
> modules/alsa/module-alsa-source-old.c
> ++module_alsa_source_old_la_LDFLAGS = $(MODULE_LDFLAGS)
> ++module_alsa_source_old_la_LIBADD = $(AM_LIBADD) $(ASOUNDLIB_LIBS)
> libalsa-util.la libpulsecore-@[email protected]
> libpulsecommon-@[email protected] libpulse.la
> ++module_alsa_source_old_la_CFLAGS = $(AM_CFLAGS)
> $(ASOUNDLIB_CFLAGS)
> ++
> + # Solaris
> +
> + module_solaris_la_SOURCES = modules/module-solaris.c
> +diff -ruN b/src/modules/alsa/alsa-mixer.c c/src/modules/alsa/alsa-mixer.c
> +--- b/src/modules/alsa/alsa-mixer.c  2011-04-11 20:35:17.385078001 +0300
> ++++ c/src/modules/alsa/alsa-mixer.c  2011-04-12 14:11:47.420078000 +0300
> +@@ -849,6 +849,37 @@
> +     return i + db_fix->min_step;
> + }
> +
> ++/* Finds the closest (rounded up) item in db_fix->db_values and returns the
> ++ * corresponding register value. *db_value is replaced with the value from
> the
> ++ * db_values table. */
> ++static long decibel_fix_get_register_value(pa_alsa_decibel_fix *db_fix, long
> *db_value) {
> ++
> ++    /* Use binary search. */
> ++
> ++    unsigned l; /* "left" */
> ++    unsigned r; /* "right" */
> ++    unsigned p; /* "probe" */
> ++
> ++    pa_assert(db_fix);
> ++    pa_assert(db_value);
> ++
> ++    l = 0;
> ++    r = db_fix->max_register_value - db_fix->min_register_value;
> ++
> ++    while ((p = (r - l) / 2 + l) != r) {
> ++        if (db_fix->db_values[p] < *db_value)
> ++            l = p + 1;
> ++        else if (db_fix->db_values[p] > *db_value)
> ++            r = p;
> ++        else
> ++            break;
> ++    }
> ++
> ++    *db_value = db_fix->db_values[p];
> ++
> ++    return p + db_fix->min_register_value;
> ++}
> ++
> + static int element_set_volume(pa_alsa_element *e, snd_mixer_t *m, const
> pa_channel_map *cm, pa_cvolume *v, pa_bool_t write_to_hw) {
> +
> +     snd_mixer_selem_id_t *sid;
> +@@ -3767,6 +3798,128 @@
> +     pa_xfree(db_values);
> + }
> +
> ++pa_alsa_decibel_fix *pa_alsa_decibel_fix_parse(
> ++        const char *str,
> ++        pa_alsa_profile_set *ps,
> ++        const char *name,
> ++        const char *filename,
> ++        unsigned line) {
> ++
> ++    pa_alsa_decibel_fix *db_fix;
> ++    char **items;
> ++    char *item;
> ++    long *db_values;
> ++    unsigned n = 8; /* Current size of db_values (db_values is reallocated 
> if
> the size gets too small). */
> ++    unsigned min_reg = 0;
> ++    unsigned max_reg = 0;
> ++    unsigned i = 0;
> ++    unsigned prev_reg = 0;
> ++    double prev_db = 0;
> ++
> ++    pa_assert(str);
> ++    pa_assert(ps);
> ++    pa_assert(name);
> ++
> ++    if (!(items = pa_split_spaces_strv(str))) {
> ++        pa_log("[%s:%u] Value missing", pa_strnull(filename), line);
> ++        return NULL;
> ++    }
> ++
> ++    db_values = pa_xnew(long, n);
> ++
> ++    while ((item = items[i++])) {
> ++        char *r = item; /* Register value string. */
> ++        char *d = item; /* dB value string. */
> ++        uint32_t reg;
> ++        double db;
> ++
> ++        /* Move d forward until it points to a colon or to the end of item. 
> */
> ++        for (; *d && *d != ':'; ++d);
> ++
> ++        if (d == r) {
> ++            /* item started with colon. */
> ++            pa_log("[%s:%u] No register value found in %s",
> pa_strnull(filename), line, item);
> ++            goto fail;
> ++        }
> ++
> ++        if (!*d || !*(d + 1)) {
> ++            /* No colon found, or it was the last character in item. */
> ++            pa_log("[%s:%u] No dB value found in %s",
> pa_strnull(filename), line, item);
> ++            goto fail;
> ++        }
> ++
> ++        /* pa_atou() needs a null-terminating string. Let's replace the
> colon
> ++         * with a zero byte. */
> ++        *d++ = '\0';
> ++
> ++        if (pa_atou(r, &reg) < 0) {
> ++            pa_log("[%s:%u] Invalid register value: %s",
> pa_strnull(filename), line, r);
> ++            goto fail;
> ++        }
> ++
> ++        if (pa_atod(d, &db) < 0) {
> ++            pa_log("[%s:%u] Invalid dB value: %s", pa_strnull(filename),
> line, d);
> ++            goto fail;
> ++        }
> ++
> ++        if (reg <= prev_reg && i != 1) {
> ++            pa_log("[%s:%u] Register value %u not greater than the
> previous value %u", pa_strnull(filename), line, reg, prev_reg);
> ++            goto fail;
> ++        }
> ++
> ++        if (db < prev_db && i != 1) {
> ++            pa_log("[%s:%u] Decibel value %0.2f less than the previous
> value %0.2f", pa_strnull(filename), line, db, prev_db);
> ++            goto fail;
> ++        }
> ++
> ++        if (i == 1) {
> ++            min_reg = reg;
> ++            db_values[0] = (long) (db * 100.0);
> ++            prev_reg = reg;
> ++            prev_db = db;
> ++        } else {
> ++            /* Interpolate linearly. */
> ++            double step = (db - prev_db) / (reg - prev_reg);
> ++
> ++            for (; prev_reg < reg; ++prev_reg, prev_db += step) {
> ++                if (prev_reg + 1 - min_reg == n) {
> ++                    n *= 2;
> ++                    db_values = pa_xrenew(long, db_values, n);
> ++                }
> ++
> ++                db_values[prev_reg + 1 - min_reg] = (long) ((prev_db +
> step) * 100.0);
> ++            }
> ++        }
> ++
> ++        max_reg = reg;
> ++    }
> ++
> ++    pa_assert(i > 1);
> ++
> (3852 more lines skipped)
> 
> ++++++ pulseaudio.yaml
> --- pulseaudio.yaml
> +++ pulseaudio.yaml
> @@ -273,7 +273,7 @@
>      - pa-0.9.22-desktop.patch
>      - use-a2dp-profile-for-non-mfld.patch
>      - fix-9972-auto-route-audio-to-bt-sink.patch
> -
> +    - pa-0.9.22-add-old-sink-and-source.patch
> 
>  Description: |
>      PulseAudio is a sound server for Linux and other Unix like operating
> 
> _______________________________________________
> MeeGo-commits mailing list
> [email protected]
> http://lists.meego.com/listinfo/meego-commits
_______________________________________________
MeeGo-packaging mailing list
[email protected]
http://lists.meego.com/listinfo/meego-packaging

Reply via email to