int stream_input_descriptor_imp::proc_get_stream_format_resp(void *& notification_id, const uint8_t * frame, size_t frame_len, int & status)
{
    struct jdksavdecc_frame cmd_frame;
    struct jdksavdecc_aem_command_get_stream_format_response m_stream_format_response;
    ssize_t aem_cmd_get_stream_format_resp_returned;
    uint32_t msg_type;
    bool u_field;

    memcpy(cmd_frame.payload, frame, frame_len);
    memset(&m_stream_format_response, 0, sizeof(jdksavdecc_aem_command_get_stream_format_response));

    aem_cmd_get_stream_format_resp_returned = jdksavdecc_aem_command_get_stream_format_response_read(&m_stream_format_response,
                                                                                                     frame,
                                                                                                     ETHER_HDR_SIZE,
                                                                                                     frame_len);
    if (aem_cmd_get_stream_format_resp_returned < 0)
    {
        log_imp_ref->post_log_msg(LOGGING_LEVEL_ERROR, "aem_cmd_get_stream_format_resp_read error\n");
        assert(aem_cmd_get_stream_format_resp_returned >= 0);
        return -1;
    }

    store_cmd_resp_frame(AEM_CMD_GET_STREAM_FORMAT, frame, ETHER_HDR_SIZE, frame_len);

    msg_type = m_stream_format_response.aem_header.aecpdu_header.header.message_type;
    status = m_stream_format_response.aem_header.aecpdu_header.header.status;
    u_field = m_stream_format_response.aem_header.command_type >> 15 & 0x01; // u_field = the msb of the uint16_t command_type

    aecp_controller_state_machine_ref->update_inflight_for_rcvd_resp(notification_id, msg_type, u_field, &cmd_frame);

    return 0;
}
    int stream_input_descriptor_imp::proc_get_stream_format_resp(void *&notification_id, const uint8_t *frame, uint16_t frame_len, int &status)
    {
        struct jdksavdecc_frame *cmd_frame;
        int aem_cmd_get_stream_format_resp_returned;
        uint32_t msg_type;
        bool u_field;

        cmd_frame = (struct jdksavdecc_frame *)malloc(sizeof(struct jdksavdecc_frame));
        memcpy(cmd_frame->payload, frame, frame_len);

        aem_cmd_get_stream_format_resp_returned = jdksavdecc_aem_command_get_stream_format_response_read(&aem_cmd_get_stream_format_resp,
                                                                                                         frame,
                                                                                                         ETHER_HDR_SIZE,
                                                                                                         frame_len);

        if(aem_cmd_get_stream_format_resp_returned < 0)
        {
            log_imp_ref->post_log_msg(LOGGING_LEVEL_ERROR, "aem_cmd_get_stream_format_resp_read error\n");
            assert(aem_cmd_get_stream_format_resp_returned >= 0);
            return -1;
        }

        msg_type = aem_cmd_get_stream_format_resp.aem_header.aecpdu_header.header.message_type;
        status = aem_cmd_get_stream_format_resp.aem_header.aecpdu_header.header.status;
        u_field = aem_cmd_get_stream_format_resp.command_type >> 15 & 0x01; // u_field = the msb of the uint16_t command_type

        aem_controller_state_machine_ref->update_inflight_for_rcvd_resp(notification_id, msg_type, u_field, cmd_frame);

        free(cmd_frame);
        return 0;
    }