2012-11-03 17:19, Colin Guthrie skrev:
> 'Twas brillig, and Tanu Kaskinen at 05/10/12 13:58 did gyre and gimble:
>> On Wed, 2012-10-03 at 08:50 +0200, David Henningsson wrote:
>>> On 10/02/2012 10:38 PM, Tanu Kaskinen wrote:
>>>> On Mon, 2012-10-01 at 17:06 +0200, David Henningsson wrote:
>>>>> If there is no silence memblock and no data, pa_memblockq_peek can
>>>>> return NULL. In this case, do not crash on an assertion in
>>>>> pa_memblock_acquire, but instead return a proper error to the client.
>>>> If there is no data in the buffer, pa_stream_peek() is supposed to
>>>> return NULL according to the documentation. And it does that: if there's
>>>> no data, pa_memblock_peek() will return a negative value, causing
>>>> pa_stream_peek() to return NULL.
>>>>
>>>> The problem is the case where the buffer does contain data, but not at
>>>> the read index. That is, there is a hole in the buffer. The client
>>>> documentation doesn't have any warnings about holes, so the only safe
>>>> way to handle holes is to return silence. Fixing this should be a simple
>>>> matter of giving a silence memchunk when creating record_memblockq.
>>> I'm not so sure. Silence, as in all zeroes, might work for S16 audio
>>> data, but what about other formats? Compressed audio? Peak audio (which
>>> I think is the case here)? Etc.
>> Good point. Regarding PCM, if pa_memchunk_silence() is used, the
>> function will take care of filling the memory with appropriate content.
>> But that doesn't work with compressed audio.
>>
>>> Also maybe it could also be valuable for the client to distinguish
>>> between no data available, and valid zero data.
>>>
>>> How about returning NULL and adding to the documentation something like:
>>>
>>> -If no data is available this will return a NULL pointer.
>>> +If no data is available (at the current read position), this will
>>> return a NULL pointer.
>> An addition: the client probably wants to know how large the hole is. It
>> might be possible to figure that out somehow from the read index, but I
>> think it would make sense to return the hole size in the length
>> parameter.
> This discussion seemed to stagnate. Is this worth fixing/documenting for
> the 3.0 release?
>
> Col
>
>
Returning NULL seems to be the right thing to do here, even if 
gnome-control-center does not handle that very well IIRC. So we might 
need an additional patch in g-c-c.
So assuming I commit a patch doing that. If somebody else wants to add 
logic to figure out how large the hole is, that could be discussed 
separately.
Any objections?

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to pulseaudio in Ubuntu.
https://bugs.launchpad.net/bugs/1058200

Title:
  [sound]: gnome-control-center crashed with SIGABRT in
  pa_memblock_acquire()

Status in “pulseaudio” package in Ubuntu:
  Fix Released

Bug description:
  The Sound panel has been extremely crash-prone for the past oh, maybe
  2 weeks.

  ProblemType: Crash
  DistroRelease: Ubuntu 12.10
  Package: gnome-control-center 1:3.4.2-0ubuntu15
  ProcVersionSignature: Ubuntu 3.5.0-15.23-generic 3.5.4
  Uname: Linux 3.5.0-15-generic x86_64
  ApportVersion: 2.5.2-0ubuntu4
  Architecture: amd64
  CrashCounter: 1
  Date: Wed Sep 26 15:34:20 2012
  ExecutablePath: /usr/bin/gnome-control-center
  ProcCmdline: gnome-control-center --overview
  Signal: 6
  SourcePackage: gnome-control-center
  StacktraceTop:
   raise () from /lib/x86_64-linux-gnu/libc.so.6
   abort () from /lib/x86_64-linux-gnu/libc.so.6
   pa_memblock_acquire () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-2.1.so
   pa_stream_peek () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
   ?? () from /usr/lib/control-center-1/panels/libsound.so
  Title: [sound]: gnome-control-center crashed with SIGABRT in raise()
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm cdrom dip libvirtd lpadmin plugdev sambashare sbuild sudo
  usr_lib_gnome-control-center:
   activity-log-manager-control-center 0.9.4-0ubuntu3
   deja-dup                            23.92-0ubuntu1
   gnome-control-center-signon         0.0.17-0ubuntu1
   indicator-datetime                  12.10.1-0ubuntu1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1058200/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to