Am 15.02.2013 23:08, schrieb Tanu Kaskinen: > On Fri, 2013-02-15 at 13:42 +0100, David Henningsson wrote: >> Currently, this function only reads the monitor name, but could >> be extended to read e g supported formats as well. >> >> Signed-off-by: David Henningsson <david.henningsson at canonical.com> >> --- >> src/modules/alsa/alsa-util.c | 55 ++++++++++++++++++++++++++++++++++++++++++ >> src/modules/alsa/alsa-util.h | 7 ++++++ >> 2 files changed, 62 insertions(+) >> >> diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c >> index 114ab27..7cc9492 100644 >> --- a/src/modules/alsa/alsa-util.c >> +++ b/src/modules/alsa/alsa-util.c >> @@ -1574,3 +1574,58 @@ snd_mixer_t *pa_alsa_open_mixer_for_pcm(snd_pcm_t *pcm, char **ctl_device, snd_h >> snd_mixer_close(m); >> return NULL; >> } >> + >> +bool pa_alsa_get_hdmi_eld(snd_hctl_t *hctl, int device, pa_hdmi_eld_t *eld) { >> + > The function could start with a comment containing a link to a > specification of the ELD data format. I didn't manage to find such > document (it doesn't help that I couldn't even figure out what the > acronym stands for), so I can't check whether the parsing code is > correct. > >> + int err; >> + snd_ctl_elem_id_t *id; >> + snd_hctl_elem_t *elem; >> + snd_ctl_elem_info_t *info; >> + snd_ctl_elem_value_t *value; >> + unsigned char *elddata; > Usually uint8_t is used as the type for binary data. > >> + unsigned int eldsize, mnl; >> + >> + pa_assert(eld != NULL); >> + >> + /* See if we can find the ELD control */ >> + snd_ctl_elem_id_alloca(&id); > This allocates memory, right? It's never freed. > alloca()-related functions allocate on the stack which is automatically freed when the function returns. The memory needn't be freed manually. Best regards.