Giter VIP home page Giter VIP logo

libmatemixer's Introduction

mate-desktop
=============

mate-desktop contains the libmate-desktop library, the mate-about
program as well as some desktop-wide documents.

The libmate-desktop library provides API shared by several applications
on the desktop, but that cannot live in the platform for various
reasons. There is no API or ABI guarantee, although we are doing our
best to provide stability. Documentation for the API is available with
gtk-doc.

The mate-about program helps find which version of MATE is installed.

You may download updates to the package from:

   http://pub.mate-desktop.org/releases/


Installation
============

If you are not using a released version of mate-desktop (for example,
if you checked out the code from git), you first need to run
'./autogen.sh'.


How to report bugs
==================

Bugs should be reported to the MATE bug tracking system:

   https://github.com/mate-desktop/mate-desktop/issues

libmatemixer's People

Contributors

clefebvre avatar flexiondotorg avatar infirit avatar mbkma avatar monsta avatar mratajsky avatar orbea avatar promarbler14 avatar raveit65 avatar rbuj avatar sc0w avatar stefano-k avatar syrjala avatar tamplan avatar yetist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libmatemixer's Issues

When I compile libmatemixer, I get the following warning, how should I remove these undefined symbols

Expected behaviour

I

Actual behaviour

Steps to reproduce the behaviour

MATE general version

Package version

libmatemixer_1.24.0-1

Linux Distribution

Link to downstream report of your Distribution

how should I remove these undefined symbols:
dpkg-shlibdeps: warning: debian/libmatemixer0/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-null.so contains an unresolvable reference to symbol _mate_mixer_backend_set_state: it's probably a plugin
dpkg-shlibdeps: warning: 1 similar warning has been skipped (use -v to see it)
dpkg-shlibdeps: warning: debian/libmatemixer0/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-alsa.so contains an unresolvable reference to symbol mate_mixer_switch_get_name: it's probably a plugin
dpkg-shlibdeps: warning: 28 other similar warnings have been skipped (use -v to see them all)
dpkg-shlibdeps: warning: debian/libmatemixer0/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-pulse.so contains an unresolvable reference to symbol mate_mixer_device_switch_get_device: it's probably a plugin
dpkg-shlibdeps: warning: 44 other similar warnings have been skipped (use -v to see them all)

Unexpected behaviour with MPRIS and more than one program

Expected behaviour

When using the play/pause key on keyboards, which plays or pauses the sound stream of certain programs, if more than one program with that option are running, pressing that key should:

  1. Play/Pause the active window.
  2. Play/Pause all the streams.

Actual behaviour

Having more than one program with that option, only the last opened one is affected.
Tested with Blanket compiled and Audacious.

Steps to reproduce the behaviour

  1. Open a music player
  2. Open another one
  3. Use the play/pause key

MATE general version

1.24

Package version

1.24

Linux Distribution

Manjaro Linux (Arch Linux derived)

Fails to build on Debian GNU/Hurd and GNU/kFreeBSD

This currently will not build on Debian GNU/Hurd with ALSA support:

alsa-constants.c:231:6: error: 'SND_MIXER_SCHN_SIDE_LEFT' undeclared here (not in a function)
     [SND_MIXER_SCHN_SIDE_LEFT]              = MATE_MIXER_CHANNEL_SIDE_LEFT,
      ^
alsa-constants.c:231:6: error: array index in initializer not of integer type
alsa-constants.c:231:6: note: (near initialization for 'alsa_channel_map_from')
alsa-constants.c:232:6: error: 'SND_MIXER_SCHN_SIDE_RIGHT' undeclared here (not in a function)
     [SND_MIXER_SCHN_SIDE_RIGHT]             = MATE_MIXER_CHANNEL_SIDE_RIGHT,
      ^
alsa-constants.c:232:6: error: array index in initializer not of integer type
alsa-constants.c:232:6: note: (near initialization for 'alsa_channel_map_from')
alsa-constants.c:233:6: error: 'SND_MIXER_SCHN_REAR_CENTER' undeclared here (not in a function)
     [SND_MIXER_SCHN_REAR_CENTER]            = MATE_MIXER_CHANNEL_BACK_CENTER
      ^
alsa-constants.c:233:6: error: array index in initializer not of integer type
alsa-constants.c:233:6: note: (near initialization for 'alsa_channel_map_from')

This is because ALSA is provided by liboss4-salsa on non-Linux Debian ports, which does not support side nor rear-centre channels (added by ALSA in http://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=597b4d0942f0618a3b5747f4b623474f57d13b82). Is this something that should be worked around in libmatemixer, or should liboss4-salsa be unsupported until side and rear-centre channel support is added to liboss4-salsa?

heap corruption/crash when pulseaudio audio device is removed

Expected behaviour

Using a USB audio device, if the audio device disconnects, MATE software should handle the device removal gracefully.

Actual behaviour

If the audio device vanishes, applications which integrate libmatemixer will error or crash. In mate-settings-daemon, the corruption is detected by malloc:
free(): corrupted unsorted chunks
corrupted double-linked list
malloc_consolidate(): unaligned fastbin chunk detected
In mate-volume-control-status-icon, it presents as so:
malloc(): unaligned tcache chunk detected
../glib/glib/gmem.c:207: failed to allocate 103079215112 bytes

Steps to reproduce the behaviour

  1. plug in USB audio adapter
  2. unplug USB audio adapter

The mate settings daemon backtrace shows the "device-removed" signal being fired and a device name string being removed from a hash table, I think because of on_connection_card_removed, while in mate-volume-control-status-icon, the error seems to occur in pulse_ext_stream_update->g_object_freeze_notify for some reason.

crashes.tar.gz

MATE general version

1.26.0

Package version

1.26.0 (no patches)

Linux Distribution

Arch Linux (rolling)

/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-null.so contains an unresolvable undefined symbol _mate_mixer_backend_set_state

Expected behaviour

Actual behaviour

Steps to reproduce the behaviour

MATE general version

Package version

libmatemixer.1.24.0-1

Linux Distribution

Link to downstream report of your Distribution

Write in front:
I have used this library in my project for a while, my project will generate a binary, and there is no problem when calling this library. Many thanks to the mate team for their contributions to the open source community.

But recently, the leader requested that my component be loaded into the control panel as a plug-in (so), and the following error occurred:
——————————————————————————————————
/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-null.so contains an unresolvable undefined symbol _mate_mixer_backend_set_state
/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-alsa.so undefined reference to symbol mate_mixer_switch_get_name
/usr/lib/x86_64-linux-gnu/libmatemixer/libmatemixer-pulse.so undefined symbol mate_mixer_device_switch_get_device
——————————————————————————————————

If you can reply to the solution to this problem, I would greatly appreciate it

[regression] Mate-volume-control doesn’t switch audio streams when changing output device

Hi,

I'm running the Ubuntu Mate 15.10 Beta release (with Mate 1.10), up to date as of today. I started a Youtube audio stream through my laptop's default speakers, and then plugged in USB headphones and tried to set them as the default output device using mate-volume-control. However, after selecting them, the Youtube audio kept playing through my laptop speakers. It wasn't until stopping the video and restarting it that the audio came out the selected USB headphones.

I can confirm that this is a regression compared to Ubuntu Mate 15.04, which correctly switches active audio streams as soon as the output device is changed.

Here's the related Launchpad bug report I filed: https://bugs.launchpad.net/ubuntu-mate/+bug/1497107

Thanks for reading!

OSS backend leads to crashes on mate-settings-daemon startup

Expected behaviour

mate-settings-daemon should not crash on NetBSD :)

On NetBSD, libmatemixer chooses the OSS backend for operation. This is kind of the correct choice since (a) NetBSD has a compatibility library that emulates OSS and (b) there is no Sun Audio backend for libmatemixer available.

I am willing to believe the OSS backend is maybe not tested as rigorously as others, perhaps it has bit-rotted?

Actual behaviour

When starting mate-settings-daemon, I see the following message that might be related:

(mate-settings-daemon:1939): GLib-GObject-WARNING **: 16:22:22.007: cannot add private field to invalid (non-instantiatable) type 'OssBackend'

A short time later, it segfaults. When running a debug build of mate-settings-daemon and libmatemixer inside gdb, I see something like this:

Thread 1 "" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x000070bd1cc39889 in g_hash_table_contains () from /usr/pkg/lib/libglib-2.0.so.0
No symbol table info available.
#2  0x000070bd0da042fc in read_device (oss=0x70bd2a866cc0, path=0x70bd2a0db680 "/dev/mixer0", 
    added=0x7f7fffd2668c) at oss-backend.c:347
        device = 0x70bd29c67400
        fd = 21
        bname = 0x0
        label = 0x297 <error: Cannot access memory at address 0x297>
#3  0x000070bd0da041c7 in read_devices (oss=0x70bd2a866cc0) at oss-backend.c:306
        path = 0x70bd2a0db680 "/dev/mixer0"
        added_current = 0
        i = 0
        added = 0
#4  0x000070bd0da03d90 in oss_backend_open (backend=0x70bd2a866cc0) at oss-backend.c:212
        oss = 0x70bd2a866cc0
        __func__ = "oss_backend_open"
#5  0x000070bd0f6077d6 in mate_mixer_backend_open (backend=0x70bd2a866cc0)
    at matemixer-backend.c:327
        __func__ = "mate_mixer_backend_open"
#6  0x000070bd0f60a808 in mate_mixer_context_open (context=0x70bd29dd5e20)
    at matemixer-context.c:855
        module = 0x70bd29dff4e0
        state = 32639
        modules = 0x70bd2a5d0b80
        info = 0x70bd0dc0c9c0 <info>
        __func__ = "mate_mixer_context_open"
#7  0x000070bd0fa0997a in msd_media_keys_manager_start ()
   from /usr/pkg/lib/mate-settings-daemon/libmedia-keys.so
No symbol table info available.
#8  0x000070bd0fa076f8 in impl_activate () from /usr/pkg/lib/mate-settings-daemon/libmedia-keys.so
No symbol table info available.
#9  0x0000000000406420 in mate_settings_plugin_activate (plugin=0x70bd2a110ed0)
    at mate-settings-plugin.c:52
        __func__ = "mate_settings_plugin_activate"
#10 0x0000000000407265 in _activate_plugin (info=0x70bd2a5ba960) at mate-settings-plugin-info.c:388
        res = 1
#11 0x000000000040737c in mate_settings_plugin_info_activate (info=0x70bd2a5ba960)
    at mate-settings-plugin-info.c:411
        __func__ = "mate_settings_plugin_info_activate"
#12 0x0000000000405649 in maybe_activate_plugin (info=0x70bd2a5ba960, manager=0x70bd2a5b5360)
    at mate-settings-manager.c:92
        res = 1
        plugin_priority = 98
#13 0x000070bd1cc6500d in g_slist_foreach () from /usr/pkg/lib/libglib-2.0.so.0
No symbol table info available.
#14 0x0000000000405c77 in _load_all (manager=0x70bd2a5b5360) at mate-settings-manager.c:291
No locals.
#15 0x0000000000405e97 in mate_settings_manager_start (manager=0x70bd2a5b5360, load_init_flag=2, 
    error=0x7f7fffd26980) at mate-settings-manager.c:370
        ret = 0
#16 0x00000000004050bc in main (argc=1, argv=0x7f7fffd269e8) at main.c:539
        manager = 0x70bd2a5b5360
        bus = 0x70bd2a80f288
        res = 1
        error = 0x0
        debug_settings = 0x70bd2a987d20

I could not get the glib Python helpers to load, so I did not introspect oss->priv->devices_paths, but even the devices list seems ... wrong:

(gdb) frame 2
#2  0x000070bd0da042fc in read_device (oss=0x70bd2a866cc0, path=0x70bd2a0db680 "/dev/mixer0", 
    added=0x7f7fffd2668c) at oss-backend.c:347
347         if (g_hash_table_contains (oss->priv->devices_paths, path) == TRUE) {
(gdb) p *(oss->priv->devices)
$3 = {data = 0x70bd28bba05c, next = 0x70bd28978645 <gtk_css_selector_not_name_print>, 
  prev = 0x70bd2897815b <gtk_css_selector_default_foreach_matcher>}

Steps to reproduce the behaviour

Start MATE desktop on NetBSD 9. The crash is silent but can be reproduced by running /usr/pkg/libexec/mate-settings-daemon in a terminal.

MATE general version

1.24.0

Package version

1.24.0 (https://pkgsrc.se/audio/libmatemixer)

Linux Distribution

NetBSD 9 amd64

Link to downstream report of your Distribution

none so far.

Build error with 1.21.0 release from po file

Expected behaviour

Finished build

Actual behaviour

make[2]: *** No rule to make target 'zu.po', needed by 'zu.gmo'. Stop.

Steps to reproduce the behaviour

clone or download limbatemixer 1.21.0
./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --enable-shared=yes --disable-maintainer-mode --disable-schemas-compile (my standard buiild option set for may packages, no problems before)
make -j

MATE general version

1.21

Package version

did not build

Linux Distribution

Debian Unstable

Link to downstream report of your Distribution

None, I have all my MATE packages locally built

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.