Opened 14 years ago
Closed 14 years ago
#10484 closed Patch - Bug Fix (Fixed)
Proposed pulseaudio latency calculation fixes (fixes warning for unsigned int value)
| Reported by: | Owned by: | JYA | |
|---|---|---|---|
| Priority: | minor | Milestone: | 0.25 |
| Component: | MythTV - Audio Output | Version: | Master Head |
| Severity: | medium | Keywords: | |
| Cc: | Ticket locked: | no |
Description
In audiooutputpulse.cpp, clang reports a warning (comparison of unsigned expression < 0 is always false) for the following code fragment:
if (latency < 0)
latency is defined as:
pa_usec_t latency = (pa_usec_t) -1;
which, since pa_usec_t is an unsigned variable, actually sets latency to be the max value, and as the warning indicates, as an unsigned variable the comparison will always be false.
I am not at all familiar with the PulseAudio API, but it seems that one should check for the value being returned from get_latency being negative via the negative return int, and act accordingly if one wants to change a negative value to zero.
I think that it is possible with the current code for a latency value which should be interpreted as negative to be interpreted as positive, resulting in some confusion elsewhere.
I have provided a proposed patch, but the SME for this code needs to review it carefully to insure the patch would be an improvement. Since I do not currently use PulseAudio, I am not sure when I could test these changes.
Thanks.
Gary
Attachments (1)
Change History (4)
by , 14 years ago
| Attachment: | audiooutputpulse_cpp.diff added |
|---|
comment:1 by , 14 years ago
| Component: | MythTV - General → MythTV - Audio Output |
|---|---|
| Milestone: | unknown → 0.25 |
| Owner: | set to |
| Version: | Unspecified → Master Head |
comment:2 by , 14 years ago
comment:3 by , 14 years ago
| Resolution: | → Fixed |
|---|---|
| Status: | new → closed |

The stream isn't a capture stream. As such, latency_negative will never be set to 1.
That whole test serves no purpose, it's just legacy code that wasn't properly adapted to pulse API.. Will simplify