don't leak memory in the error cases
This commit is contained in:
@@ -9,6 +9,7 @@ int mpv_get_peaks(mpv_handle* handle, double* lPeak, double* rPeak, double* lRMS
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (result.format != MPV_FORMAT_NODE_MAP) {
|
if (result.format != MPV_FORMAT_NODE_MAP) {
|
||||||
|
mpv_free_node_contents(&result);
|
||||||
return MPV_ERROR_PROPERTY_FORMAT;
|
return MPV_ERROR_PROPERTY_FORMAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,34 +17,38 @@ int mpv_get_peaks(mpv_handle* handle, double* lPeak, double* rPeak, double* lRMS
|
|||||||
for (int i = 0; found < 4 && i < result.u.list->num; i++) {
|
for (int i = 0; found < 4 && i < result.u.list->num; i++) {
|
||||||
if (strcmp("lavfi.astats.1.Peak_level", result.u.list->keys[i]) == 0) {
|
if (strcmp("lavfi.astats.1.Peak_level", result.u.list->keys[i]) == 0) {
|
||||||
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
||||||
return MPV_ERROR_PROPERTY_FORMAT;
|
ret = MPV_ERROR_PROPERTY_FORMAT;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*lPeak = atof(result.u.list->values[i].u.string);
|
*lPeak = atof(result.u.list->values[i].u.string);
|
||||||
found++;
|
found++;
|
||||||
}
|
}
|
||||||
if (strcmp("lavfi.astats.2.Peak_level", result.u.list->keys[i]) == 0) {
|
if (strcmp("lavfi.astats.2.Peak_level", result.u.list->keys[i]) == 0) {
|
||||||
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
||||||
return MPV_ERROR_PROPERTY_FORMAT;
|
ret = MPV_ERROR_PROPERTY_FORMAT;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*rPeak = atof(result.u.list->values[i].u.string);
|
*rPeak = atof(result.u.list->values[i].u.string);
|
||||||
found++;
|
found++;
|
||||||
}
|
}
|
||||||
if (strcmp("lavfi.astats.1.RMS_level", result.u.list->keys[i]) == 0) {
|
if (strcmp("lavfi.astats.1.RMS_level", result.u.list->keys[i]) == 0) {
|
||||||
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
||||||
return MPV_ERROR_PROPERTY_FORMAT;
|
ret = MPV_ERROR_PROPERTY_FORMAT;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*lRMS = atof(result.u.list->values[i].u.string);
|
*lRMS = atof(result.u.list->values[i].u.string);
|
||||||
found++;
|
found++;
|
||||||
}
|
}
|
||||||
if (strcmp("lavfi.astats.2.RMS_level", result.u.list->keys[i]) == 0) {
|
if (strcmp("lavfi.astats.2.RMS_level", result.u.list->keys[i]) == 0) {
|
||||||
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
if (result.u.list->values[i].format != MPV_FORMAT_STRING) {
|
||||||
return MPV_ERROR_PROPERTY_FORMAT;
|
ret = MPV_ERROR_PROPERTY_FORMAT;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*rRMS = atof(result.u.list->values[i].u.string);
|
*rRMS = atof(result.u.list->values[i].u.string);
|
||||||
found++;
|
found++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mpv_free_node_contents(&result);
|
|
||||||
|
|
||||||
return MPV_ERROR_SUCCESS;
|
mpv_free_node_contents(&result);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user