+tdm_client_voutput_set_available_formats(tdm_client_voutput *voutput, const tbm_format *formats, const int count)
+{
+ tdm_private_client_voutput *private_voutput;
+
+ TDM_RETURN_VAL_IF_FAIL(voutput != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ if ((count > 0) && (formats == NULL))
+ return TDM_ERROR_INVALID_PARAMETER;
+
+ private_voutput = (tdm_private_client_voutput *)voutput;
+
+ if (private_voutput->base.connection == TDM_OUTPUT_CONN_STATUS_CONNECTED)
+ return TDM_ERROR_BAD_REQUEST;
+
+ if (private_voutput->available_formats.formats)
+ free(private_voutput->available_formats.formats);
+
+ private_voutput->available_formats.count = count;
+
+ if (count != 0)
+ {
+ private_voutput->available_formats.formats = calloc(count, sizeof(tbm_format));
+ memcpy(private_voutput->available_formats.formats, formats, sizeof(tbm_format) * count);
+ }
+
+ return TDM_ERROR_NONE;
+}
+
+tdm_error